package com.ewzj.bigdata.mvp.ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.widget.ImageView;

import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;

import com.ewzj.bigdata.di.component.DaggerSplashComponent;
import com.ewzj.bigdata.di.module.SplashModule;
import com.ewzj.bigdata.mvp.contract.SplashContract;
import com.ewzj.bigdata.mvp.presenter.SplashPresenter;

import com.ewzj.bigdata.R;
import com.jess.arms.utils.DeviceUtils;


import butterknife.BindView;
import cn.bingoogolapple.bgabanner.BGABanner;
import cn.bingoogolapple.bgabanner.BGALocalImageSize;

import static com.jess.arms.utils.Preconditions.checkNotNull;

    /*
    * 闪屏页面,第一次启动app时
    *
    * */
public class SplashActivity extends BaseActivity<SplashPresenter> implements SplashContract.View {
        @BindView(R.id.banner_guide_background)
        BGABanner mBackgroundBanner;
        @BindView(R.id.banner_guide_foreground)
        BGABanner mForegroundBanner;

    @Override
    public void setupActivityComponent(AppComponent appComponent) {
        DaggerSplashComponent //如找不到该类,请编译一下项目
                .builder()
                .appComponent(appComponent)
                .splashModule(new SplashModule(this))
                .build()
                .inject(this);
    }

    @Override
    public int initView(Bundle savedInstanceState) {
        DeviceUtils.setFullScreen(this);
        return R.layout.activity_splash;
        //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
    }

    @Override
    public void initData(Bundle savedInstanceState) {
        setListener();
        processLogic();
    }


    @Override
    public void showLoading() {

    }

    @Override
    public void hideLoading() {

    }

    @Override
    public void showMessage(@NonNull String message) {
        checkNotNull(message);
        ArmsUtils.snackbarText(message);
    }

    @Override
    public void launchActivity(@NonNull Intent intent) {
        checkNotNull(intent);
        ArmsUtils.startActivity(intent);
    }

    @Override
    public void killMyself() {
        finish();
    }

        private void processLogic() {
            // Bitmap 的宽高在 maxWidth maxHeight 和 minWidth minHeight 之间
            BGALocalImageSize localImageSize = new BGALocalImageSize(720, 1280, 320, 640);
            // 设置数据源
            mBackgroundBanner.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
                    R.drawable.uoko_guide_background_1,
                    R.drawable.uoko_guide_background_2,
                    R.drawable.uoko_guide_background_3);

            mForegroundBanner.setData(localImageSize, ImageView.ScaleType.CENTER_CROP,
                    R.drawable.uoko_guide_foreground_1,
                    R.drawable.uoko_guide_foreground_2,
                    R.drawable.uoko_guide_foreground_3);
        }

        @Override
        public void setListener() {
            /**
             * 设置进入按钮和跳过按钮控件资源 id 及其点击事件
             * 如果进入按钮和跳过按钮有一个不存在的话就传 0
             * 在 BGABanner 里已经帮开发者处理了防止重复点击事件
             * 在 BGABanner 里已经帮开发者处理了「跳过按钮」和「进入按钮」的显示与隐藏
             */
            mForegroundBanner.setEnterSkipViewIdAndDelegate(R.id.btn_guide_enter, R.id.tv_guide_skip, new BGABanner.GuideDelegate() {
                @Override
                public void onClickEnterOrSkip() {
                   ArmsUtils.startActivity(MainTabActivity.class);
                }
            });
        }

        @Override
        protected void onResume() {
            super.onResume();
            // 如果开发者的引导页主题是透明的，需要在界面可见时给背景 Banner 设置一个白色背景，避免滑动过程中两个 Banner 都设置透明度后能看到 Launcher
            mBackgroundBanner.setBackgroundResource(android.R.color.white);

        }
    }
